Skip to content

fix(release): drop non-functional plugin-pin extra-files, use caret pin#104

Merged
amondnet merged 2 commits into
mainfrom
fix/plugin-pin-caret-drop-dead-extrafiles
Jul 1, 2026
Merged

fix(release): drop non-functional plugin-pin extra-files, use caret pin#104
amondnet merged 2 commits into
mainfrom
fix/plugin-pin-caret-drop-dead-extrafiles

Conversation

@amondnet

@amondnet amondnet commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #101. The extra-files json updaters added to the packages/code component to auto-sync plugin @pleaseai/code pins never ran — verified against release PR #102, which bumped packages/code to 0.1.14 but left every plugins/*/package.json untouched.

Root cause

release-please resolves a component's extra-files paths relative to that component's directory. So plugins/*/package.json listed under packages/code was looked for at packages/code/plugins/*/package.json and silently skipped. Root-relative paths only work under the . component — but that stamps the . version (0.1.23), not code's (0.1.14). Because the packages are independently versioned (not lockstep like grafana/faro-web-sdk, which puts such cross-package pins under one root component), release-please extra-files can't cleanly stamp the code version onto root-level files. The block was dead config.

Changes

  • release: remove the non-functional extra-files block from the packages/code component in release-please-config.json.
  • plugins: pin code-intelligence-lsp to ^0.1.14 (was 0.1.14). A caret range means npm auto-picks up any 0.1.x patch of @pleaseai/code — which is where lsp-multiplex and its future fixes ship — with no release-please machinery. At a breaking 0.2.0 the pin would be bumped manually (correct: breaking changes shouldn't auto-apply).

Notes

Test Plan

  • Merge, then confirm the next Release Please run leaves plugin pins alone (no dead-config churn).
  • After @pleaseai/code@0.1.14 publishes (via chore: release main #102), confirm a fresh code-intelligence-lsp install resolves ^0.1.14 to 0.1.14 and lsp-multiplex works.

Summary by cubic

Removed dead release updaters under packages/code and switched all LSP plugins to caret pins for @pleaseai/code to auto-pick up 0.1.x fixes without release churn.

  • Bug Fixes

    • Removed the extra-files block from packages/code in release-please-config.json (paths were resolved relative to the component, so plugin package.json files were never updated).
  • Dependencies

    • plugins/code-intelligence-lsp: @pleaseai/code -> ^0.1.14.
    • Remaining 13 LSP plugins: @pleaseai/code -> ^0.1.13.

Written for commit 75d44ca. Summary will update on new commits.

The extra-files json updaters under the packages/code component never ran:
release-please resolves a component's extra-files paths relative to that
component's directory, so plugins/*/package.json was looked for under
packages/code/plugins/* and silently skipped. Because the plugins are
independently versioned (not lockstep), the code version can't be stamped
onto root-level files from a sub-component.

- release: remove the dead extra-files block from packages/code
- plugins: pin code-intelligence-lsp to ^0.1.14 so npm auto-picks up 0.1.x
  patches of @pleaseai/code (which is where lsp-multiplex ships), with no
  release-please machinery
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4aa710f8-ccc8-4c4f-931c-8df98c8d3ff6

📥 Commits

Reviewing files that changed from the base of the PR and between f426543 and 75d44ca.

📒 Files selected for processing (13)
  • plugins/clangd-lsp/package.json
  • plugins/csharp-lsp/package.json
  • plugins/dart-lsp/package.json
  • plugins/elixir-lsp/package.json
  • plugins/eslint-lsp/package.json
  • plugins/fsharp-lsp/package.json
  • plugins/jdtls-lsp/package.json
  • plugins/kotlin-lsp/package.json
  • plugins/lua-lsp/package.json
  • plugins/rubocop-lsp/package.json
  • plugins/terraform-lsp/package.json
  • plugins/texlab-lsp/package.json
  • plugins/zls-lsp/package.json

📝 Walkthrough

Walkthrough

This PR changes @pleaseai/code dependency specs from pinned versions to caret ranges in several plugin package.json files, and removes extra-files tracking for that component from release-please-config.json.

Changes

Dependency configuration update

Layer / File(s) Summary
Release-please tracking update
release-please-config.json
packages/code keeps component: "@pleaseai/code" and drops the prior extra-files entries.
Plugin dependency ranges
plugins/code-intelligence-lsp/package.json, plugins/*-lsp/package.json
@pleaseai/code dependency entries change from exact versions to caret ranges across the listed plugin manifests.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: N/A

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main release-please config cleanup and the caret pin update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/plugin-pin-caret-drop-dead-extrafiles

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the extra-files configuration for @pleaseai/code in release-please-config.json and updates the dependency in plugins/code-intelligence-lsp/package.json to use a caret range (^0.1.14). The reviewer suggests updating the remaining 13 LSP plugins to also use caret ranges for @pleaseai/code to avoid manual maintenance overhead and potential version drift, as they will no longer be automatically updated by release-please.

Comment thread release-please-config.json
@greptile-apps

greptile-apps Bot commented Jul 1, 2026

Copy link
Copy Markdown

Greptile Summary

This PR removes dead extra-files release-please config from packages/code (paths were never resolved correctly) and switches @pleaseai/code pins to caret ranges to let plugins pick up 0.1.x patches automatically.

  • Removes the extra-files block from packages/code in release-please-config.json; the paths were resolved relative to the component directory and silently skipped, so this block was always a no-op.
  • Changes plugins/code-intelligence-lsp from exact 0.1.14^0.1.14, intentional per the PR rationale.
  • Also converts all 13 other 0.1.13-pinned plugins to ^0.1.13, which contradicts the PR description that explicitly calls this out-of-scope. Needs clarification or revert.

Confidence Score: 4/5

The release-please config fix and code-intelligence-lsp caret pin are correct, but the 13 stable plugins were also converted to caret ranges despite the PR explicitly calling that out-of-scope — needs author confirmation before merging.

The 13 stable plugins were silently converted from exact 0.1.13 pins to ^0.1.13, contrary to the PR's own description. If unintentional, those plugins will auto-upgrade on the next npm install to any future 0.1.x release. The discrepancy between stated intent and actual diff warrants explicit confirmation from the author.

The 13 stable plugin package.json files (clangd-lsp, csharp-lsp, dart-lsp, elixir-lsp, eslint-lsp, fsharp-lsp, jdtls-lsp, kotlin-lsp, lua-lsp, rubocop-lsp, terraform-lsp, texlab-lsp, zls-lsp) need attention — their caret-range conversion appears to conflict with the stated scope of the change.

Important Files Changed

Filename Overview
release-please-config.json Removes dead extra-files block from packages/code component — paths were resolved relative to the component dir and silently skipped. The component key is preserved. Clean, correct fix.
plugins/code-intelligence-lsp/package.json Pin changed from 0.1.14 (exact) to ^0.1.14 (caret) — aligns with stated intent to let this plugin pick up 0.1.x patch fixes automatically.
plugins/clangd-lsp/package.json Pin changed from 0.1.13 to ^0.1.13 — contradicts PR description which explicitly stated these 13 stable plugins keep exact pins and caret conversion is out of scope.
plugins/csharp-lsp/package.json Same unexpected 0.1.13 → ^0.1.13 conversion as other stable-plugin files.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[release-please triggers on packages/code bump] --> B{extra-files present?}
    B -- "Before PR (dead config)" --> C[Resolve paths relative to packages/code/]
    C --> D[plugins/*/package.json not found → silently skipped]
    B -- "After PR (removed)" --> E[No extra-files step]
    E --> F[Plugin pins stay as-is in repo]

    G[npm install in plugin] --> H{Pin format?}
    H -- "Exact: 0.1.13 / 0.1.14 (before)" --> I[Installs exactly that version]
    H -- "Caret: ^0.1.13 / ^0.1.14 (after)" --> J[Installs latest 0.1.x patch automatically]
    J --> K[code-intelligence-lsp picks up lsp-multiplex fixes]
    J --> L[Other 13 plugins also auto-upgrade — intent unclear per PR description]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[release-please triggers on packages/code bump] --> B{extra-files present?}
    B -- "Before PR (dead config)" --> C[Resolve paths relative to packages/code/]
    C --> D[plugins/*/package.json not found → silently skipped]
    B -- "After PR (removed)" --> E[No extra-files step]
    E --> F[Plugin pins stay as-is in repo]

    G[npm install in plugin] --> H{Pin format?}
    H -- "Exact: 0.1.13 / 0.1.14 (before)" --> I[Installs exactly that version]
    H -- "Caret: ^0.1.13 / ^0.1.14 (after)" --> J[Installs latest 0.1.x patch automatically]
    J --> K[code-intelligence-lsp picks up lsp-multiplex fixes]
    J --> L[Other 13 plugins also auto-upgrade — intent unclear per PR description]
Loading

Fix All in Claude Code

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
plugins/clangd-lsp/package.json:4
**Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges**

The PR description explicitly says *"The other 13 LSP plugins only use the stable `code lsp-server` command, so they keep their exact `0.1.13` pins. (Converting them to caret ranges too is possible but out of scope here.)"* Yet the diff converts all 13 (`clangd-lsp`, `csharp-lsp`, `dart-lsp`, `elixir-lsp`, `eslint-lsp`, `fsharp-lsp`, `jdtls-lsp`, `kotlin-lsp`, `lua-lsp`, `rubocop-lsp`, `terraform-lsp`, `texlab-lsp`, `zls-lsp`) from `0.1.13` to `^0.1.13`. This means these plugins will now silently auto-upgrade to any future `0.1.x` patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact `0.1.13` pin.

Reviews (2): Last reviewed commit: "fix(plugins): use caret range for @pleas..." | Re-trigger Greptile

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

Architecture diagram
sequenceDiagram
    participant RP as Release Please (GitHub Action)
    participant Config as release-please-config.json
    participant Code as @pleaseai/code (packages/code)
    participant PluginCIL as plugins/code-intelligence-lsp
    participant PluginOther as plugins/* (other 13)
    participant Npm as npm registry
    participant Installer as npm install (CI/Dev)

    Note over RP,Config: extra-files block removed from packages/code

    RP->>Config: Read component config
    Config-->>RP: packages/code (no extra-files)
    RP->>Code: Bump version (e.g., 0.1.14)
    Code-->>RP: Updated package.json

    Note over RP,Config: OLD: extra-files block existed but paths resolved relative to packages/code<br/>so plugins/*/package.json were never reached → dead config

    Note over PluginCIL,PluginOther: Plugin dependency pins unchanged by Release Please

    Installer->>PluginCIL: npm install @pleaseai/code
    PluginCIL->>Npm: Resolve "^0.1.14" (caret range)
    alt Compatible 0.1.x version found
        Npm-->>PluginCIL: Latest 0.1.x (e.g., 0.1.14)
    else No compatible version
        Npm-->>PluginCIL: Resolution error
    end

    Installer->>PluginOther: npm install @pleaseai/code
    PluginOther->>Npm: Resolve "0.1.13" (exact pin)
    Npm-->>PluginOther: Exactly 0.1.13

    Note over PluginCIL: Caret pin allows automatic patch updates<br/>without release-please config
Loading

Re-trigger cubic

…gins

Apply gemini-code-assist review: convert the 13 exact 0.1.13 pins to ^0.1.13
so npm auto-picks up 0.1.x patches of @pleaseai/code without manual bumps,
matching code-intelligence-lsp. Backward-compatible (>=0.1.13 <0.2.0).
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@amondnet
amondnet merged commit 559a54d into main Jul 1, 2026
9 of 10 checks passed
@amondnet
amondnet deleted the fix/plugin-pin-caret-drop-dead-extrafiles branch July 1, 2026 10:45
"private": true,
"dependencies": {
"@pleaseai/code": "0.1.13"
"@pleaseai/code": "^0.1.13"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges

The PR description explicitly says "The other 13 LSP plugins only use the stable code lsp-server command, so they keep their exact 0.1.13 pins. (Converting them to caret ranges too is possible but out of scope here.)" Yet the diff converts all 13 (clangd-lsp, csharp-lsp, dart-lsp, elixir-lsp, eslint-lsp, fsharp-lsp, jdtls-lsp, kotlin-lsp, lua-lsp, rubocop-lsp, terraform-lsp, texlab-lsp, zls-lsp) from 0.1.13 to ^0.1.13. This means these plugins will now silently auto-upgrade to any future 0.1.x patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact 0.1.13 pin.

Prompt To Fix With AI
This is a comment left during a code review.
Path: plugins/clangd-lsp/package.json
Line: 4

Comment:
**Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges**

The PR description explicitly says *"The other 13 LSP plugins only use the stable `code lsp-server` command, so they keep their exact `0.1.13` pins. (Converting them to caret ranges too is possible but out of scope here.)"* Yet the diff converts all 13 (`clangd-lsp`, `csharp-lsp`, `dart-lsp`, `elixir-lsp`, `eslint-lsp`, `fsharp-lsp`, `jdtls-lsp`, `kotlin-lsp`, `lua-lsp`, `rubocop-lsp`, `terraform-lsp`, `texlab-lsp`, `zls-lsp`) from `0.1.13` to `^0.1.13`. This means these plugins will now silently auto-upgrade to any future `0.1.x` patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact `0.1.13` pin.

How can I resolve this? If you propose a fix, please make it concise.

Fix in Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant